From ef05174ce005ce0fdbb2313c1e7243f259818669 Mon Sep 17 00:00:00 2001 From: "robertlipe@gmail.com" Date: Sun, 20 Nov 2011 20:38:32 +0000 Subject: [PATCH] Add configure-time check for Windows DDK for delbin. Improve expat guessing. git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@4125 f51c46e8-681c-474f-0cfe-069cfd0219fb --- gpsbabel/configure | 84 ++++++++++++++++++++++++++++++++++++------- gpsbabel/configure.in | 40 +++++++++++++-------- gpsbabel/delbin.c | 6 ++-- 3 files changed, 101 insertions(+), 29 deletions(-) diff --git a/gpsbabel/configure b/gpsbabel/configure index 0505e7e3d..ec4f9e1c1 100755 --- a/gpsbabel/configure +++ b/gpsbabel/configure @@ -4179,7 +4179,67 @@ echo "${ECHO_T}USB skipped" >&6; } OSJEEPS=jeeps/gpsusbstub.o else OSJEEPS=jeeps/gpsusbwin.o - USB_LIBS="-lsetupapi -lhid" + USB_LIBS="-lsetupapi" + { echo "$as_me:$LINENO: checking for Windows DDK" >&5 +echo $ECHO_N "checking for Windows DDK... $ECHO_C" >&6; } + old_LIBS="$LIBS" + LIBS="$LIBS -lhid" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + #include +int +main () +{ +HANDLE HidDeviceObject; + HIDD_ATTRIBUTES Attributes; + HidD_GetAttributes(HidDeviceObject, &Attributes); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_WDK 1 +_ACEOF + + USB_LIBS=${USB_LIBS}" -lhid" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$old_LIBS" fi ;; *-*-darwin*) @@ -4378,7 +4438,8 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 } && test -s conftest.$ac_objext; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } - cat >>confdefs.h <<\_ACEOF + +cat >>confdefs.h <<\_ACEOF #define HAVE_LINUX_HID 1 _ACEOF @@ -4462,7 +4523,6 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_LIBEXPAT 1 _ACEOF - fi if test -f /opt/local/lib/libexpat.a ; then # libexpat installed via macports @@ -4473,7 +4533,6 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_LIBEXPAT 1 _ACEOF - fi if test -f /usr/local/lib/libexpat.a ; then # libexpat installed from source @@ -4484,7 +4543,6 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_LIBEXPAT 1 _ACEOF - fi ;; *-gentoo-freebsd*) @@ -4498,21 +4556,18 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_LIBEXPAT 1 _ACEOF - fi ;; - *) - EXPAT_LIB=-lexpat - ;; esac fi -{ echo "$as_me:$LINENO: result: $EXPAT_LIB" >&5 -echo "${ECHO_T}$EXPAT_LIB" >&6; } -{ echo "$as_me:$LINENO: checking for XML_ParserCreate in -lexpat" >&5 +if test "x${EXPAT_LIB}" = x; then + { echo "$as_me:$LINENO: result: try to autodetect" >&5 +echo "${ECHO_T}try to autodetect" >&6; } + { echo "$as_me:$LINENO: checking for XML_ParserCreate in -lexpat" >&5 echo $ECHO_N "checking for XML_ParserCreate in -lexpat... $ECHO_C" >&6; } if test "${ac_cv_lib_expat_XML_ParserCreate+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -4579,8 +4634,13 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_LIBEXPAT 1 _ACEOF + EXPAT_LIB=-lexpat +fi +else + { echo "$as_me:$LINENO: result: $EXPAT_LIB" >&5 +echo "${ECHO_T}$EXPAT_LIB" >&6; } fi diff --git a/gpsbabel/configure.in b/gpsbabel/configure.in index d116df481..74a7c3ab2 100644 --- a/gpsbabel/configure.in +++ b/gpsbabel/configure.in @@ -162,7 +162,21 @@ case "$target" in OSJEEPS=jeeps/gpsusbstub.o else OSJEEPS=jeeps/gpsusbwin.o - USB_LIBS="-lsetupapi -lhid" + USB_LIBS="-lsetupapi" + AC_MSG_CHECKING(for Windows DDK) + old_LIBS="$LIBS" + LIBS="$LIBS -lhid" + AC_TRY_LINK([#include ] + [#include ], + [HANDLE HidDeviceObject; + HIDD_ATTRIBUTES Attributes; + HidD_GetAttributes(HidDeviceObject, &Attributes);], + [AC_MSG_RESULT(yes)] + [AC_DEFINE(HAVE_WDK, 1, [Defined if you have Windows DDK])] + [USB_LIBS=${USB_LIBS}" -lhid"], + [AC_MSG_RESULT(no)] + ) + LIBS="$old_LIBS" fi ;; *-*-darwin*) @@ -232,7 +246,7 @@ case "$target" in ioctl(0, HIDIOCSREPORT, &rinfo); }], AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_LINUX_HID, 1), + AC_DEFINE(HAVE_LINUX_HID, 1, [Defined if you have Linux HID]), AC_MSG_RESULT(no)) ;; esac @@ -290,21 +304,18 @@ AC_ARG_WITH(libexpat, EXPAT_LIB=/sw/lib/libexpat.a LIBS="$LIBS -L/sw/lib" AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat]) - AC_SUBST(EXPAT_LIB) fi if test -f /opt/local/lib/libexpat.a ; then # libexpat installed via macports EXPAT_LIB=/opt/local/lib/libexpat.a LIBS="$LIBS -L/opt/local/lib" AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat]) - AC_SUBST(EXPAT_LIB) fi if test -f /usr/local/lib/libexpat.a ; then # libexpat installed from source EXPAT_LIB=/usr/local/lib/libexpat.a LIBS="$LIBS -L/usr/local/lib" AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat]) - AC_SUBST(EXPAT_LIB) fi ;; *-gentoo-freebsd*) @@ -314,21 +325,22 @@ AC_ARG_WITH(libexpat, if test -f /usr/local/lib/libexpat.a ; then EXPAT_LIB=/usr/local/lib/libexpat.a AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat]) - AC_SUBST(EXPAT_LIB) fi ;; - *) - EXPAT_LIB=-lexpat - ;; esac ] ) -AC_MSG_RESULT($EXPAT_LIB) -AC_CHECK_LIB([expat], [XML_ParserCreate], - AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat]) - AC_SUBST(EXPAT_LIB) -) +if test "x${EXPAT_LIB}" = x; then + AC_MSG_RESULT(try to autodetect) + AC_CHECK_LIB([expat], [XML_ParserCreate], + AC_DEFINE(HAVE_LIBEXPAT, 1, [Defined if you have libexpat]) + EXPAT_LIB=-lexpat + ) +else + AC_MSG_RESULT($EXPAT_LIB) +fi +AC_SUBST(EXPAT_LIB) AC_MSG_CHECKING(for efence) AC_ARG_ENABLE(efence, diff --git a/gpsbabel/delbin.c b/gpsbabel/delbin.c index 57b847aec..16f6d4d9b 100644 --- a/gpsbabel/delbin.c +++ b/gpsbabel/delbin.c @@ -2425,7 +2425,7 @@ ff_vecs_t delbin_vecs = { //----------------------------------------------------------------------------- // Windows -#if _WIN32 +#ifdef HAVE_WDK #undef HAVE_LIBUSB @@ -2550,7 +2550,7 @@ delbin_os_ops_t delbin_os_ops = { win_os_packet_write }; -#endif // _WIN32 +#endif // HAVE_WDK //----------------------------------------------------------------------------- // MacOS X @@ -3006,7 +3006,7 @@ delbin_os_ops_t delbin_os_ops = { //----------------------------------------------------------------------------- // stubs -#if !(_WIN32 || __APPLE__ || HAVE_LIBUSB || HAVE_LINUX_HID) +#if !(HAVE_WDK || __APPLE__ || HAVE_LIBUSB || HAVE_LINUX_HID) static void stub_os_init(const char* fname) { -- 2.30.2